1. Technical Field
The present invention is generally directed to session initiation protocol or session initiated protocol (SIP) systems. More specifically, the present invention is directed to a system, computer program product and method of communicating with SIP application sessions using a message-oriented middleware system.
2. Description of Related Art
Telephone Companies (Telcos) are investing in creating and deploying voice over Internet Protocol (VoIP) infrastructure. VoIP allows one to make telephone calls using a computing device connected to a data network such as the Internet. Specifically, in VoIP an analog voice signal from a telephone is converted into a digital signal that travels over the Internet. When the digital signal arrives at its destination, it is converted back into the original analog voice signal.
There are several protocols currently used in implementing VoIP. These protocols include H.323, a standard created by the International Telecommunication Union, Media Gateway Control Protocol and SIP. One of the challenges facing the worldwide use of VoIP is that these protocols are not always compatible. Nonetheless, SIP is rapidly becoming the de facto protocol for VoIP.
SIP is an application-layer protocol used for establishing, managing, and terminating sessions between two or more Internet protocol (IP) endpoints or user agents (UAs). In a VoIP operation, the UAs initiate and respond to SIP messages, and SIP proxy servers route the SIP messages toward their destination UAs. Thus, one of the main functions of SIP is routing messages from UA clients via a path of SIP proxy servers to UA servers. To route SIP messages, the SIP proxy servers use, among other technologies, SIP servlets.
A SIP servlet is a Java-based application component, managed by a SIP container. SIP containers implement Java Specification Request (JSR) 116 SIP servlet Specification and also contain SIP protocol stacks that implement all pertinent SIP Requests for Comments (RFCs) standards. For example RFC 3261, which is used to establish and terminate SIP calls, is implemented by an application that runs within the SIP container.
Consequently, when a message arrives at a SIP server, it is sent to the SIP container which routes the message to an appropriate SIP servlet contained therein for processing. In a converged HTTP/SIP servlet container where both SIP and HTTP servlets are deployed, the SIP container associates incoming HTTP and SIP messages with converged SipApplicationSessions using HTTP or SIP protocol-specific headers. In a distributed SIP application server environment, protocol-specific headers allow load balancing elements to direct HTTP or SIP messages to a specific container that handles a given converged session.
As is well known, Java 2 Platform, Enterprise Edition (J2EE) simplifies application program development and decreases the need for programmer training by creating standardized, reusable modular components. Further, J2EE provides dynamic loading features which facilitate deployment and update of applications at runtime. J2EE has a built-in security framework that allows containers to restrict applications in what actions they can perform. J2EE also provides access to a large set of useful functionality, such as JDBC (Java Database Connectivity) for database access, JNDI (Java Naming and Directory Interface) for directory lookups and JMS (Java Message service) for inter-network communications.
Since SIP servlets are based on standard Java Servlet technology, they can be incorporated into the larger J2EE framework. Incorporating SIP servlets into the larger J2EE framework avails SIP of all the functionalities of J2EE, including JMS.
However, there is currently no mechanism available to associate JMS messages with particular converged SIP sessions. Specifically, JMS lacks protocol-specific headers and routing mechanisms for handling SIP messages in a distributed environment. Consequently, it is difficult for converged HTTP/SIP applications to participate in message-oriented middleware (i.e. JMS) programming practices.
Therefore, what is needed are a system, computer program product and method of communicating with SIP application sessions using a message-oriented middleware system.